<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>

    <script>

        // 递归函数：传递与回归
        //    函数自己调用自己  --- 循环


        // n - 1
        function fn(n) {
            if(n === 0) return ;
            console.log(n);
            // n-- ;
            // fn(n);
            fn(--n);
        }

        fn(10);



        // 求和   1+2+3+4+...+10

        //   以前  sum=0   sum+=1   sum+=2   sum+=3   ...


        //   递归的思想   
        //       你把1-9的和算出来   sum(10) = sum(9) + 10
        //       你把1-8的和算出来   sum(9) = sum(8) + 9

        //       你把1-2的和算出来   sum(3) = sum(2) + 3

        //                         sum(2) = sum(1) + 2

        //       sum(1) = 1


        // function sum(n) {
        //     if(n === 1) return 1 ;
        //     return sum(n - 1) + n ;
        // }


        // console.log(sum(10));




        // 多维数组的深复制
        var arr = [1,2,[3]] ;
        var res = [] ;
        for(var i in arr) {
            res.push(arr[i])
        }
        console.log(res);

        arr.push(4) ;

        arr[2].push(4);

        console.log(res);















        function deep(arr) {
            var res = [] ;
            for(var i in arr) {
                // 判断arr[i] 是不是数组
                // if(Array.isArray(arr[i])) {
                    
                //     // var res2 = deep(arr[i]); 
                //     // res.push(res2);
                //     res.push(deep(arr[i])) ;

                // } else {
                //     res.push(arr[i])
                // }
                res.push(Array.isArray(arr[i]) ? deep(arr[i]) : arr[i]) ;
            }
            return res
        }




        var res = deep([1,2,3,[4]]) ;
        console.log(res);







    </script>
    
</body>
</html>